

var app = getApp()

// 开始login
function loginMgx(index) {
    console.log("我是单独的login");
    
    // index.setData({
    //   mgxUserInfo: {"abc":"666"},
    //   amount: 1000,
    // })

    onLoadLogin(index);
}

function onLoadLogin(index){
    //文档：https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html
    // 1. 查看是否授权，已授权直接获取，未授权跳转授权页面
    // 获取用户信息，如果不进行授权就换取不到userinfo头像、名称、地址等信息
    wx.getSetting({
        success: res => {
        //res:{"errMsg":"getSetting:ok","authSetting":{"scope.userInfo":true}}
        console.log("查看用户是否授权 getSetting：" + JSON.stringify(res.data));
        if (res.authSetting['scope.userInfo']) {
            //已登陆显示页面
            index.setData({
              vdisplay: "block"
            })

            // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
            wx.getUserInfo({
            success: res => {
                //res:{"errMsg":"getUserInfo:ok","rawData":"{\"nickName\":\"李强\",\"gender\":1,\"language\":\"zh_CN\",\"city\":\"Shenzhen\",\"province\":\"Guangdong\",\"country\":\"China\",\"avatarUrl\":\"https://wx.qlogo.cn/mmopen/vi_32/U8ZFyRNZHRDy7nPUI2qNt19t5FmrSqPmLicvbe9tubEHAU6DF2MOKDliasuqSMJSu3aNgZfCVMHHqicMKvNtkaB3g/132\"}","userInfo":{"nickName":"李强","gender":1,"language":"zh_CN","city":"Shenzhen","province":"Guangdong","country":"China","avatarUrl":"https://wx.qlogo.cn/mmopen/vi_32/U8ZFyRNZHRDy7nPUI2qNt19t5FmrSqPmLicvbe9tubEHAU6DF2MOKDliasuqSMJSu3aNgZfCVMHHqicMKvNtkaB3g/132"},"signature":"9cc24a6750d96cd47b84ad46253c21184f8c7290","encryptedData":"Io11ioKOHDI4JYRODoSsa2b96bKka6+bn6qtj3km7NAi+zD+FmcjlpWYlk7WM+Ij3y7S1wmPDMCoA4uptv6zZD+H9w6lLEdzeaE51Kc0GPPSPtv/fE1jRhzkGA6leVjDXrY2/B0eMHFYBHWYZW22KGnX30UI9BP/k7/+ka9BgzulguvefwE4OiWbk/Z8hVHKhQy3C6AI1vPl5RuPrrngvIcBdnHcbGlcUPqU5HrqXtKiU+gusZGv4O5l5yx95oPnMKaX/RNc75N6FXLjLah1iZc2NwErSkpLJMdqLqhB+FsuZO6KvleVklEUkBVP+8nD2yG0NUwIuaWKSbO6E+YBesBFOCiNgmv2eG4Yg/g+5Pcl70YyQ9hkd8JQsESO1KECAiJ+luf07sZI0xzqRk658/EhrcZlNzB3IWB6D/66Zh84zGyBoxLC0CmPHUbvc6zQh0iHPa/IHB+cMvX01rfpDAyjJwwPPBi6nEq5mx++n04=","iv":"/mehdHoGRtPLeuJ0VP2QLg=="}
                // 可以将 res 发送给后台解码出 unionId
                app.globalData.userInfo = res.userInfo
                console.log("获取用户用户详细信息 UserInfo：" + JSON.stringify(res.userInfo));

                //2. 微信已经授权，直接获取后端用户信息
                userLogin(res.userInfo,index);

                //3. 用户没有授权，跳去按钮授权

                //获取授权成功跳转到首页
                // console.log("获取授权成功");
                // wx.switchTab({
                //   url: '/pages/index/index'
                // })
                // return;
                
                // 这一句放到最后！！！
                //由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                //所以此处加入 callback 以防止这种情况
                if (index.userInfoReadyCallback) {
                    index.userInfoReadyCallback(res)
                }
            }
            })
        }
        else{
            //未登陆就跳转到登陆授权页面
            if (!app.globalData.userInfo){
              wx.redirectTo({
                url: '../user/auth/auth'
              })
              return;
            }
        }
        },
        fail: function (res) { },
        complete: function (res) { },
    });
}

//自定义登陆，可以放在app加载完成调用，wx.login()放在“启动页”会没有效果
//登陆完成后查询并返回数据等业务
function userLogin (userInfo,index){
    //let that = index;
    // 登录，通过此接口换取openid及本次登录的会话密钥（session_key）
    wx.login({
      success: res => {
        //res:{"errMsg":"login:ok","code":"02394wJV1py9tX0O40MV1PfNJV194wJG"}
        //发送 res.code 到后台换取 openId, sessionKey, unionId（多公众号统一id）
        wx.request({
          url: app.globalData.urlPath + "/api/WeChat/Login",
          method: 'POST',
          data: {
            //OpenID: app.globalData.openid,//后端换取的，前端这时候根本没有
            Source: app.globalData.appSource,
            Param: {
              ResCode: res.code,
              NickName: userInfo.nickName,
              AvatarUrl: userInfo.avatarUrl,
              Province: userInfo.province,
              City: userInfo.city,
              Language: userInfo.language,
              Country: userInfo.country
            }
          },
          success: res => {
            //换取成功，保存全局openid
            app.globalData.openid = res.data.openid;
            console.log("登录成功，换取Openid：" + app.globalData.openid);
            app.globalData.loginInfo = res.data;
            //日期格式
            app.globalData.loginInfo.Data.CreateTime = app.globalData.loginInfo.Data.CreateTime.substring(0,10);
            console.log("登录成功，换取后台mgxUserInfo：" + JSON.stringify(app.globalData.loginInfo));
            app.globalData.userHash = res.data.userHash;
            app.globalData.loginInfo.amount = res.data.amount;


            //已登陆，操作业务已登陆，操作业务
            if (app.globalData.userInfo) {
              
              //对象赋值
              index.setData({
                mgxUserInfo: app.globalData.mgxUserInfo,
                amount: app.globalData.loginInfo.amount,
              })

              //金币赠送后提示，再清空
              if(app.globalData.loginInfo.GiveMsg){
                wx.showModal({
                  content: app.globalData.loginInfo.GiveMsg,
                  showCancel: false,
                  success: function (res) {
                      if (res.confirm) {                  
                          console.log('用户点击确定')
                      }
                      else{}
                  }
                });
                app.globalData.loginInfo.GiveMsg = "";
              }
            }  
            else {
              // 已过时，在没有 open-type=getUserInfo 版本的兼容处理
              wx.getUserInfo({
                success: res => {
                  app.globalData.userInfo = res.userInfo
                  index.setData({
                    userInfo: res.userInfo,
                    hasUserInfo: true
                  })
                }
              })      
            }



            //抢金币授权成功，如果有包地址，就跳转到抢金币页面
            /*if(that.data.pkh){
              wx.redirectTo({
                url: '/pages/mangox/getpackage/getpackage?pkh='+ that.data.pkh +'',
              })
              return;
            }
            else{
              //授权成功并换取数据等之后，返回首页
              console.log("授权成功返回首页页");
              wx.switchTab({
                url: '/pages/index/index'
              })
            }*/

            // //把授权的用户的相关信息写入数据库
            // wx.request({
            //   url: app.globalData.urlPath + '/api/UserMgx/Auth_wx',
            //   method: 'POST',
            //   data: {
            //     openid: app.globalData.openid,
            //     nickName: e.detail.userInfo.nickName,
            //     avatarUrl: e.detail.userInfo.avatarUrl,
            //     province: e.detail.userInfo.province,
            //     city: e.detail.userInfo.city,
            //     language: e.detail.userInfo.language,
            //     country: e.detail.userInfo.country
            //   },
            //   success: function (res) {
            //     app.globalData.loginInfo.Token = res.data.TokenUpdate;
            //     //保存用户详细信息成功，包含asp.net的服务器信息和业务保存成功模型
            //     //可用于别名个性化设置
            //     console.log("auth保存用户详细信息:" + JSON.stringify(res.data));
            //   }
            // });

            //登陆完成获取用户信息，这里不需要，因为添加完成会返回详细信息
            //index.queryUsreInfo();

          }
        });
      }
    });
}

module.exports = {
    loginMgx: loginMgx
}